/**
 * 
 */
package com.enjoyor.soa.traffic.api.service.dubbo.ovms;

import java.util.List;

import com.enjoyor.soa.traffic.api.dto.ovms.LogUserDto;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * @author Administrator
 *
 */
public interface DubboStatisticsService {
	/**
	 * 获取昨天和前天每小时正式违法数据量
	 * 
	 * @return
	 */
	public ResultPojo getReview2DaysHourCount(String regionId, String deptId, LogUserDto logUser);

	/**
	 * 获取一天区域的正式违法数据统计
	 * 
	 * @param data_time
	 *            传一天的日期字符串，yyyy-mm-dd
	 * @param deptId
	 * @param regionId
	 * @return
	 */
	public ResultPojo getReviewRegionCount(LogUserDto logUser, String data_time, String regionId, String deptId);

	/**
	 * 获取实时路口正式违法数据量统计
	 * 
	 * @param deptId
	 * @param regionId
	 * @return
	 */
	public ResultPojo getReviewRealRoadCrossCount(String regionId, String deptId, LogUserDto logUser);

	/**
	 * 获取每日违法数据量和审核通过违法数据量
	 * 
	 * @param logUser
	 * @param offsite_id
	 * @param time
	 *            传日期，2017-10-01,月日<10需要补0
	 * @return
	 */
	public ResultPojo getOffsiteVioCount(LogUserDto logUser, String offsite_id, String time);

	/**
	 * 根据日期获取是否有数据
	 * 
	 * @param logUser
	 * @param offsite_id
	 * @param start_time
	 * @param end_time
	 * @return
	 */
	public ResultPojo getViolationCacheCountByDate(LogUserDto logUser, String offsite_id, String time_start,
			String time_end);

	/**
	 * 根据日期获取是否有数据
	 * 
	 * @param logUser
	 * @param offsite_id
	 * @param start_time
	 * @param end_time
	 * @return
	 */
	public ResultPojo getViolationCacheHasData(LogUserDto logUser, List<String> offsite_ids, String time_start,
			String time_end);

	/**
	 * 根据日期获取是否有数据
	 * 
	 * @param logUser
	 * @param offsite_id
	 * @param start_time
	 * @param end_time
	 * @return
	 */
	public ResultPojo getViolationDealCountByDate(LogUserDto logUser, String offsite_id, String time_start,
			String time_end);

	/**
	 * 根据日期获取是否有数据
	 * 
	 * @param logUser
	 * @param offsite_id
	 * @param start_time
	 * @param end_time
	 * @return
	 */
	public ResultPojo getViolationDisuseCountByDate(LogUserDto logUser, String offsite_id, String time_start,
			String time_end);

	/**
	 * 根据日期获取是否有未启用数据
	 * 
	 * @param logUser
	 * @param offsite_ids
	 * @param time_start
	 * @param time_end
	 * @return
	 */
	public ResultPojo getViolationDisuseHasData(LogUserDto logUser, List<String> offsite_ids, String time_start,
			String time_end);

	/**
	 * 违法行为统计
	 * 
	 * @param logUser
	 * @param region_id
	 *            区域编号
	 * @param dept_id
	 *            部门编号
	 * @param road_id
	 *            道路编号
	 * @param block_id
	 *            路段编号
	 * @param offsite_id
	 *            路口编号
	 * @param violation_code
	 *            违法编号
	 * @param cycle
	 *            周期，年'year',月'month',日'day'
	 * @param count_date
	 *            统计时间，如'2018','2018-05','2018-05-07'
	 * @return
	 */
	public ResultPojo getViolationTypeCount(LogUserDto logUser, String region_id, String dept_id, String road_id,
			String block_id, String offsite_id, String violation_code, String cycle, String count_date);

	/**
	 * 设备组违法数量统计
	 * 
	 * @param logUser
	 * @param region_id
	 *            区域编号
	 * @param dept_id
	 *            部门编号
	 * @param offsite_id
	 *            路口编号
	 * @param count_date
	 *            统计时间
	 * @return
	 */
	public ResultPojo getCrossViolationCount(LogUserDto logUser, String region_id, String dept_id, String offsite_id,
			String count_date);

	/**
	 * 工作量统计
	 * 
	 * @param logUser
	 * @param count_type
	 *            统计类型，大队'1'，中队'2'，警员'3'
	 * @param region_id
	 *            区域编号
	 * @param dept_id
	 *            部门编号
	 * @param count_date_start
	 *            统计时间
	 * @param count_date_end
	 *            统计时间
	 * @param violation_types
	 *            统计的违法类型，录入未审'undeal_record' 预处理未审'undeal_preview' 未审总计'undeal'
	 *            抓拍录入已审'deal_catch' 1344录入已审'deal_1344' 其他录入已审'deal_other'
	 *            预处理已审'deal_preview' 已审总计'deal' 其中13442 'deal_13442' 其中13452
	 *            'deal_13452' 人工录入无效数据'disuse_record' 预处理无效数据'disuse_preview' 无效数据
	 *            'disuse'
	 * @return
	 */
	public ResultPojo getDeptWorkCount(LogUserDto logUser, String count_type, String region_id, String dept_id,
			String count_date_start, String count_date_end, List<String> violation_types);
}
